package com.liip.app.task;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import lombok.extern.slf4j.Slf4j;

/**
 * 定时任务
 * @Auther: luolin
 * @Date: 2020-10-15 4:06 PM
 * @Description:
 */
@Component
@EnableScheduling   //开启定时任务
@Slf4j
public class JobTask {
	/**
	 * @SendTo 注解外,Spring 还提供了 SimpMessagingTemplate 类
	 * SimpMessagingTemplate是Spring-WebSocket内置的一个消息发送工具，可以将消息发送到指定的客户端
	 */
	@Autowired
    private SimpMessagingTemplate messagingTemplate;
	
	// 时间格式化
    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
    
	//@Scheduled(cron="8 */1 * * * ?")//每分钟的第8秒开始执行
	//定时任务发布消息（每十秒执行一次）
    @Scheduled(cron = "*/10 * * * * ?")//运行周期时间可配
    public void jobTask() {
		
      //这里的nowDate 暂且作为订阅的内容--可更换为具体的业务数据
        String nowDate = dateFormat.format(new Date());
        //这里的destination 是 订阅的地址
        String destination = "/topic/echoTest/price";
        log.info("websocket 【{}】定时任务发布消息==>【开始】", destination);
        try {
            this.messagingTemplate.convertAndSend(destination, "服务器主动推的数据: 你好你好ABCDEFGH1234567890 || "+nowDate);
        }catch (Exception e){
            log.error("websocket ={} 定时任务发布消息==>【异常】", destination, e);
        }

	}
}
